using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._WorkflowManagerTools._Jobs
{
    /// <summary>
    /// <para>Get Job Data Workspace</para>
    /// <para>Gets the job data workspace as an enterprise geodatabase connection file. This tool is typically used in ModelBuilder to retrieve the connection file for use as an input to other tools such as Reconcile Versions in the model.</para>
    /// <para>获取作为企业级地理数据库连接文件的作业数据工作空间。此工具通常在模型构建器中用于检索连接文件，以用作模型中其他工具（例如协调版本）的输入。</para>
    /// </summary>    
    [DisplayName("Get Job Data Workspace")]
    public class GetJobDataWorkspace : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public GetJobDataWorkspace()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_Input_JobID">
        /// <para>Input Job ID</para>
        /// <para>The ID for the job whose data workspace connection is to be retrieved.</para>
        /// <para>要检索其数据工作区连接的作业的 ID。</para>
        /// </param>
        public GetJobDataWorkspace(object _Input_JobID)
        {
            this._Input_JobID = _Input_JobID;
        }
        public override string ToolboxName => "Workflow Manager Tools";

        public override string ToolName => "Get Job Data Workspace";

        public override string CallName => "wmx.GetJobDataWorkspace";

        public override List<string> AcceptEnvironments => [];

        public override object[] ParameterInfo => [_Input_JobID, _Input_DatabasePath, _Input_SDEFileLocation, _Output_JobDataWorkspace];

        /// <summary>
        /// <para>Input Job ID</para>
        /// <para>The ID for the job whose data workspace connection is to be retrieved.</para>
        /// <para>要检索其数据工作区连接的作业的 ID。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Job ID")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _Input_JobID { get; set; }


        /// <summary>
        /// <para>Input Database Path</para>
        /// <para>The Workflow Manager (Classic) database connection file that contains the job information. If no connection file is specified, the current default Workflow Manager (Classic) database in the project is used.</para>
        /// <para>包含作业信息的 Workflow Manager （Classic） 数据库连接文件。如果未指定连接文件，则使用工程中的当前默认 Workflow Manager （Classic） 数据库。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Database Path")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Input_DatabasePath { get; set; } = null;


        /// <summary>
        /// <para>Save a copy of the Job Data Workspace in</para>
        /// <para>The job's data workspace connection file will be written to the specified folder.</para>
        /// <para>作业的数据工作区连接文件将写入指定的文件夹。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Save a copy of the Job Data Workspace in")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _Input_SDEFileLocation { get; set; } = null;


        /// <summary>
        /// <para>Output Job Data Workspace</para>
        /// <para></para>
        /// <para></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Job Data Workspace")]
        [Description("")]
        [Option(OptionTypeEnum.derived)]
        public object _Output_JobDataWorkspace { get; set; }


        public GetJobDataWorkspace SetEnv()
        {
            base.SetEnv();
            return this;
        }

    }

}